SONY's Extension to VRML2.0

New nodes

SONY_SharedBindingNode

is newly introduced to support multiuser functions. This node is used Prototype definition of this node is:
    PROTO SONY_SharedBindingNode [
        field SFNode transformNode NULL
        field SFNode scriptNode NULL
    ] { }
This node is defined to be expanded to nothing so that VRML 2.0 browsers other than Community Place can safely ignore the node.

In the Community Place browser, this node is treated in a special way. A transform node specified for transformNode field of this node is made sharable among clients. In other words, nodes other than those specified in this field are not shared. The field transformNode must be specified and its value must be a Transform node.

If the value of the scriptNode field is not NULL, the value must be a Script node. The Script node's eventIns can be called remotely. You can call sendApplSpecific() or sendApplSpecificWithDist() Java APIs with specifying the target (the first argument) to be the Transform node specified in the transformNode field and eventIn name (the second argument) to be the eventIn names that appear in the Script node.

The third argument of the APIs is a string value, which will be the value of eventIns of the Script node. The eventIns must be of type SFString to accept the values sent using the APIs.

Here is an example:

PROTO SONY_SharedBindingNode [ 
  field SFNode transformNode NULL 
  field SFNode scriptNode NULL
] { }

DEF T1 Transform { ... }
DEF S1 Script {
  eventIn SFString IN1
  eventIn SFString IN2
  ...
}

SONY_SharedBindingNode { transformNode USE T1 scriptNode USE S1 }

SONY_Appearance

Extends the original Appearance node by putting two new fields: The definition is as follows:
    PROTO Sony_Appearance [
	field        SFBool   backface         FALSE
	exposedField SFString description      ""
	exposedField SFNode   material         NULL
	exposedField SFNode   texture          NULL
	exposedField SFNode   textureTransform NULL
    ] {
	Appearance {
	    material IS material
	    texture IS texture
	    textureTransform IS textureTransform
	}
    }

Parameters described in WorldInfo

The followigs are described using WorldInfo's "info" field. Thanks to the fact that "info" field is a MFString, you can specify multiple parameters in a WorldInfo.

VsServer, CPBureau

Specify the VsServer's address and port for a content.
e.g. WorldInfo{info "VsServer: vsserver.foo.com:5000"} or
WorldInfo{info "VsServer: 12.23.34.45:5000"}

ArmLength

Specify how far your virtual arm can reach in a world. This parameter is used to decide if an object can be touched. This parameter is specified by "meter".
e.g. WorldInfo{info "ArmLength: 5"}

WorldLocationServer, CPBureauWLS

Specify the world location server's address and port for a content. Also you must specify 'title' in WorldInfo when you use the WorldLocationServer.

e.g.
WorldInfo{
title "myworld"
info "WorldLocationServer: vsserver.foo.com:6000"
} or
WorldInfo{
title "myworld"
info "WorldLocationServer: 12.23.34.45:6000"
}

Archive

Specifies an archive which contains files used in this VRML file. These files are extracted and placed in appropriate local directories so that they can be accessed using relative paths from the place where this VRML file is placed. This method reduces the necessary connections during loading the content. For the compatibility with other browsers, these files should be placed in approriate remote directories as well.

The archive itself is created using LHA archiver and must be placed in the same directory as this VRML file is placed.

E.g.

WorldInfo {
  ...
  info [... "Archive: foo.lzh"]
}

SonyAvatarRoom

Specifies if an avatar room (for changing avatar color) description file is provided for this world. You can specifiy TRUE or FALSEas the value. If the value is TRUE, a file named avtroom.wrl must be supplied in the same place as this VRML file. The avtroom.wrl is expected to provide the functionality of changing avatar part colors.
WorldInfo {
  ...
  info [... "SonyAvatarRoom: TRUE"]
}